package com.qububu.utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


/**
 * @author ZCW
 * 功能：时间处理工具类
 * 详情：
 * */
public class DateUtil {

	/**
	 * @功能 返回当前Date的毫秒数
	 *  */
	public static final long getDateMillisecond(Date date) {
		
		return date.getTime();
	}
	
	/**
	 * @功能  得到当前时间Date的INT值
	 * */
	public static final int convertCurrentDTTMtoInt() {
		return convertDTTMtoInt(new Date());
	}
	
	/**
	 * @功能 得到指定时间Date的INT值
	 * */
	public static final int convertDTTMtoInt(Date givenDTTM) {
		return (int) (givenDTTM.getTime() / 1000);
	}
	
	/**
	 * @功能 格式化时间yyyy-MM-dd
	 * */
	public static String formatDTString(int dateValue) {
		DateFormat df = new SimpleDateFormat(SystemConstants.DATE_PATTERN_SHORT_DT);
		return df.format(convertIntToDTTM(dateValue));
	}	
	
	/**
	 * @功能 得到INT时间对应的时间Date
	 * */
	public static final Date convertIntToDTTM(int dttmInt) {
		return new Date((long) dttmInt * 1000);
	}
	
	/**
	 * @功能 格式化时间yyyy-MM-dd HH:mm:ss
	 * */
	public static String formatToDTTMString(int dateValue) {
		DateFormat df = new SimpleDateFormat(SystemConstants.DATE_PATTERN_NORMAL);
		return df.format(convertIntToDTTM(dateValue));
	}
	
	/**
	 * @功能 把yyyyMMdd类型的String格式化为Date
	 * */
	public static final Date formatStringToDateDT(String dtStr) {
		DateFormat df = new SimpleDateFormat(SystemConstants.DATE_PATTERN_SHORT_DT);
		try {
			return df.parse(dtStr);
		} catch (ParseException e) {
			throw new IllegalArgumentException("Input string " + dtStr + " can not be parsed to Date correctly.", e);
		}
	}
	
	/**
	 * @功能 String yyyy-MM-dd转换为int
	 * */
	public static int decodeFromDTString(String dtStr) {
		return convertDTTMtoInt(formatStringToDateDT(dtStr));
	}
	
	/**
	 * @功能 把yyyy-MM-dd HH:mm:ss类型的String格式化为Date
	 * */
	public static final Date formatStringToDateDTTM(String dtStr) {
		DateFormat df = new SimpleDateFormat(SystemConstants.DATE_PATTERN_NORMAL);
		try {
			return df.parse(dtStr);
		} catch (ParseException e) {
			throw new IllegalArgumentException("Input string " + dtStr + " can not be parsed to Date correctly.", e);
		}
	}
	
	/**
	 * @功能 String yyyy-MM-dd HH:mm:ss转换为int
	 * */
	public static int decodeFromDTTMString(String dttmStr) {
		return convertDTTMtoInt(formatStringToDateDTTM(dttmStr));
	}
	
	/**
	 * @功能 根据指定的时间格式生成系统时间
	 * */
	public static String getDateByDateType(String dateType) {
		
		return "";
	}
}
